gusucode.com > 基于VBLAST-OFDM的MATLAB SIMULATION,图形化界面,并且给出了各仿真图 > 基于VBLAST-OFDM的MATLAB SIMULATION,图形化界面,并且给出了各仿真图/vblast-ofdm simulation/tx_gen_preamble_vblast.m
function preamble = tx_gen_preamble_vblast(SimulationParameters); %************************************************************************** %the following training sequences for various transmit antenna %configurations is merely given here as a placement for preamble coding. It %is in fact never used, but provded to the user in case channel estimation %with V-BLAST is required. %************************************************************************** global SimulationConstants; M=SimulationParameters.M; N=SimulationParameters.N; % next generate the two long training symbols fft_length=SimulationParameters.FFTPoints; long_tr = SimulationConstants.LongTrainingSymbols; long_tr_symbol = tx_convert_to_time(long_tr,SimulationParameters); if SimulationParameters.M==1 % single antenna preamble % extend with the 2*guard interval in front and then two long training symbols long_trs_signal = [long_tr_symbol(fft_length-2*16+1:fft_length) long_tr_symbol long_tr_symbol]; elseif SimulationParameters.M==2 % generate the two antenna preamble, % long training symbols are not transmitted simultaneously from both antennas to allow % channel estimation in receiver (orthogonal in time) long_trs_signal(1,:) = sqrt(2)*[long_tr_symbol(fft_length-16+1:fft_length) long_tr_symbol ... zeros(1,(fft_length+16))]; long_trs_signal(2,:) = sqrt(2)*[zeros(1,(fft_length+16)) ... long_tr_symbol(fft_length-16+1:fft_length) long_tr_symbol]; elseif SimulationParameters.M==4 long_trs_signal(1,:) = sqrt(4)*[long_tr_symbol(fft_length-16+1:fft_length) long_tr_symbol ... zeros(1,(fft_length+16)) zeros(1,(fft_length+16)) zeros(1,(fft_length+16))]; long_trs_signal(2,:) = sqrt(4)*[zeros(1,(fft_length+16)) ... long_tr_symbol(fft_length-16+1:fft_length) long_tr_symbol ... zeros(1,(fft_length+16)) zeros(1,(fft_length+16))]; long_trs_signal(3,:) = sqrt(4)*[zeros(1,(fft_length+16)) zeros(1,(fft_length+16)) ... long_tr_symbol(fft_length-16+1:fft_length) long_tr_symbol zeros(1,(fft_length+16))]; long_trs_signal(4,:) = sqrt(4)*[zeros(1,(fft_length+16)) zeros(1,(fft_length+16)) zeros(1,(fft_length+16)) ... long_tr_symbol(fft_length-16+1:fft_length) long_tr_symbol]; end % concatenate first short training symbols and long training symbols preamble(1,:) = [long_trs_signal(1,:)]; % add the multiple antenna preambles if SimulationParameters.M==2 preamble(2,:) = [long_trs_signal(2,:)]; end if SimulationParameters.M==4 preamble(2,:) = [long_trs_signal(2,:)]; preamble(3,:) = [long_trs_signal(3,:)]; preamble(4,:) = [long_trs_signal(4,:)]; end